# smtplib 用于邮件的发信动作
import json
import random
import smtplib
# email 用于构建邮件内容
from email.mime.text import MIMEText
# 构建邮件头
from email.header import Header

# 发信方的信息：发信邮箱，QQ 邮箱授权码
from_addr = '2762588441@qq.com'
password = 'rhsigipnkfjodedf'
smtp_server = 'smtp.qq.com'


def send_code(to_addr,random_code):
    # 收信方邮箱
    # to_addr = '2739332028@qq.com'
    # 发信服务器
    # 邮箱正文内容，第一个参数为内容，第二个参数为格式(plain 为纯文本)，第三个参数为编码
    # random_code = random.randint(1000, 9999)
    html_msg = "你好，{name}，你的验证码为：{code}".format(name=to_addr, code=random_code)
    msg = MIMEText(html_msg, 'plain', 'utf-8')
    # 邮件头信息
    msg['From'] = Header("程序设计基础在线学习系统")  # 发送者
    msg['To'] = Header(to_addr)  # 接收者
    subject = '在线学习系统注册'
    msg['Subject'] = Header(subject, 'utf-8')  # 邮件主题
    try:
        smtpobj = smtplib.SMTP_SSL(smtp_server)
        # 建立连接--qq邮箱服务和端口号（可百度查询）
        smtpobj.connect(smtp_server, 465)
        # 登录--发送者账号和口令
        smtpobj.login(from_addr, password)
        # 发送邮件
        smtpobj.sendmail(from_addr, to_addr, msg.as_string())
        print("邮件发送成功")


        return True
    except smtplib.SMTPException as e:
        print("发送失败邮件")
        print(e)
        return False
    finally:
        # 关闭服务器
        smtpobj.quit()


if __name__ == '__main__':
    send_code('2739332028@qq.com')
